package com.smartbone.dao.daoInterface;

import java.util.List;

import com.smartbone.entity.Finance;

/**
 * Interface for FinanceDAO.
 * 
 * @author MyEclipse Persistence Tools
 */

public interface IFinanceDAO {
	/**
	 * Perform an initial save of a previously unsaved Finance entity. All
	 * subsequent persist actions of this entity should use the #update()
	 * method. This operation must be performed within the a database
	 * transaction context for the entity's data to be permanently saved to the
	 * persistence store, i.e., database. This method uses the
	 * {@link javax.persistence.EntityManager#persist(Object)
	 * EntityManager#persist} operation.
	 * <p>
	 * User-managed Spring transaction example:
	 * 
	 * <pre>
	 * TransactionStatus txn = txManager
	 * 		.getTransaction(new DefaultTransactionDefinition());
	 * IFinanceDAO.save(entity);
	 * txManager.commit(txn);
	 * </pre>
	 * 
	 * @see <a href =
	 *      "http://www.myeclipseide.com/documentation/quickstarts/jpaspring#containermanaged">Spring
	 *      container-managed transaction examples</a>
	 * @param entity
	 *            Finance entity to persist
	 * @throws RuntimeException
	 *             when the operation fails
	 */
	public void save(Finance entity);

	/**
	 * Delete a persistent Finance entity. This operation must be performed
	 * within the a database transaction context for the entity's data to be
	 * permanently deleted from the persistence store, i.e., database. This
	 * method uses the {@link javax.persistence.EntityManager#remove(Object)
	 * EntityManager#delete} operation.
	 * <p>
	 * User-managed Spring transaction example:
	 * 
	 * <pre>
	 * TransactionStatus txn = txManager
	 * 		.getTransaction(new DefaultTransactionDefinition());
	 * IFinanceDAO.delete(entity);
	 * txManager.commit(txn);
	 * entity = null;
	 * </pre>
	 * 
	 * @see <a href =
	 *      "http://www.myeclipseide.com/documentation/quickstarts/jpaspring#containermanaged">Spring
	 *      container-managed transaction examples</a>
	 * @param entity
	 *            Finance entity to delete
	 * @throws RuntimeException
	 *             when the operation fails
	 */
	public void delete(Finance entity);

	/**
	 * Persist a previously saved Finance entity and return it or a copy of it
	 * to the sender. A copy of the Finance entity parameter is returned when
	 * the JPA persistence mechanism has not previously been tracking the
	 * updated entity. This operation must be performed within the a database
	 * transaction context for the entity's data to be permanently saved to the
	 * persistence store, i.e., database. This method uses the
	 * {@link javax.persistence.EntityManager#merge(Object) EntityManager#merge}
	 * operation.
	 * <p>
	 * User-managed Spring transaction example:
	 * 
	 * <pre>
	 * TransactionStatus txn = txManager
	 * 		.getTransaction(new DefaultTransactionDefinition());
	 * entity = IFinanceDAO.update(entity);
	 * txManager.commit(txn);
	 * </pre>
	 * 
	 * @see <a href =
	 *      "http://www.myeclipseide.com/documentation/quickstarts/jpaspring#containermanaged">Spring
	 *      container-managed transaction examples</a>
	 * @param entity
	 *            Finance entity to update
	 * @return Finance the persisted Finance entity instance, may not be the
	 *         same
	 * @throws RuntimeException
	 *             if the operation fails
	 */
	public Finance update(Finance entity);

	public Finance findById(Long id);

	/**
	 * Find all Finance entities with a specific property value.
	 * 
	 * @param propertyName
	 *            the name of the Finance property to query
	 * @param value
	 *            the property value to match
	 * @return List<Finance> found by query
	 */
	public List<Finance> findByProperty(String propertyName, Object value);

	public List<Finance> findByMgsy(Object mgsy);

	public List<Finance> findByMgjzc(Object mgjzc);

	public List<Finance> findByJzcsyl(Object jzcsyl);

	public List<Finance> findByMgjyxj(Object mgjyxj);

	public List<Finance> findByMggjj(Object mggjj);

	public List<Finance> findByMgwfp(Object mgwfp);

	public List<Finance> findByGdqyb(Object gdqyb);

	public List<Finance> findByJlrtb(Object jlrtb);

	public List<Finance> findByZysltb(Object zysltb);

	public List<Finance> findByXsmll(Object xsmll);

	public List<Finance> findByTzmgjzc(Object tzmgjzc);

	public List<Finance> findByZzc(Object zzc);

	public List<Finance> findByLdzc(Object ldzc);

	public List<Finance> findByGdzc(Object gdzc);

	public List<Finance> findByWxzc(Object wxzc);

	public List<Finance> findByLdfz(Object ldfz);

	public List<Finance> findByCqfz(Object cqfz);

	public List<Finance> findByZfz(Object zfz);

	public List<Finance> findByGdqy(Object gdqy);

	public List<Finance> findByZbgjj(Object zbgjj);

	public List<Finance> findByJyxjll(Object jyxjll);

	public List<Finance> findByTzxjll(Object tzxjll);

	public List<Finance> findByCzxjll(Object czxjll);

	public List<Finance> findByXjzje(Object xjzje);

	public List<Finance> findByZysr(Object zysr);

	public List<Finance> findByZylr(Object zylr);

	public List<Finance> findByYylr(Object yylr);

	public List<Finance> findByTzsy(Object tzsy);

	public List<Finance> findByYywsz(Object yywsz);

	public List<Finance> findByLrze(Object lrze);

	public List<Finance> findByJlr(Object jlr);

	public List<Finance> findByWfplr(Object wfplr);

	public List<Finance> findByAg(Object ag);

	/**
	 * Find all Finance entities.
	 * 
	 * @return List<Finance> all Finance entities
	 */
	public List<Finance> findAll();
}